/*!
 * 附件 通用配置方法
 *  
 * 作者：吴金龙
 * Copyright (c) 2019/12/11
 * 
 */
/* 附件地址公用路径 */
// export const attachPath = 'http://172.20.8.250/group1/'
//export const attachPath = 'http://172.16.3.150:9002/group1/'//代理地址
export const attachPath = 'http://172.20.136.224:9101/group1'//代理地址
/* 文件上传接口（无状态） */
export const fileuploadUrl = baseURL + 'fileupload/file/upload'
/* 根据业务新增附件同时保存系统大类小类 */
export const uploadByBusinessUrl = baseURL + 'attachment/uploadByBusiness'

/**
 * @method findAttchList 内容模块模态框获取文件和图片列表接口
 * @param {number} page 列表当前显示的页数
 * @param {number} size 列表一页有多少条数据
 * @param {object} data 内容模块获取获取文件和图片的参数
 * @return axios
 */
export const findAttchList = (data) => {
	return axios({
		url: '/attachment/findAttchList/0/0',
		method: 'post',
		data
	})
}

/**
 * @method preview 图片预览接口
 * @param {string} attId 图片预览时获取的图片id
 * @return axios
 */
export const preview = (attId) => {
	return axios({
		url: `/attachment/preview/${attId}`,
		method: 'get'
	})
}

/**
 * @method deleteAttid 图片删除接口
 * @param {string} attId 图片删除时获取的图片id
 * @return axios
 */
export const deleteAttid = (attId) => {
	return axios({
		url: `/attachment/delete/${attId}`,
		method: 'delete'
	})
}

/**
 * @method downloadAttach 附件下载接口
 * @param {string} attId 附件id
 */
export const downloadAttach = (attId) => {
	if(!attId) return
	// 自定义form标签，初始化相关参数
	var form = document.createElement("form")
	form.setAttribute("style", "display:none")
	form.setAttribute("method", "post")
	var params = {}
	var input = document.createElement('input')
	input.setAttribute('type', 'hidden')
	input.setAttribute('name', 'attId')
	input.setAttribute('value', attId)
	form.append(input)
	form.setAttribute("action", baseURL + "attachment/download")
	var body = document.createElement("body")
	body.setAttribute("style", "display:none")
	document.body.appendChild(form)
	form.submit()
	form.remove()
}
/**
 * @method blobDownload blob附件下载接口
 * @param {object} attId 下载附件时传输的对象,例如URL,params等
 */
export const blobDownload = (objBlob) => {
  // bolb下载附件时初始化相关参数
  let defaultBlobParams = {
    url: baseURL + "attachment/download",
    method: 'post',
    responseType: 'blob',
    header: 'Authorization'
  }
  if (objBlob) {
    Object.assign(defaultBlobParams,objBlob) // 合并默认参数和将要传入的参数,防止出现冲突
  }
  axios(defaultBlobParams).then((response) => {
    if (!response) { // 如果response不存在直接return不往下执行
      return
    }
    // 接受数据返回的文件流并转化成功后，对返回的链接进行下载处理
    let blob = new Blob([response.data], {type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8'})
    if(!defaultBlobParams.fileName){ // 判断数据里有没有返回fileName字段,根据fileName进行以下操作
      // 获取到返回的fileName,并根据具体情况截取相应的文件名称长度
      defaultBlobParams.fileName = response.headers['content-disposition'].substring(21, fileName.length - 1)
    }
    // 用a标签里的download属性进行下载附件操作,以下是进行浏览器兼容判断
    if ('download' in document.createElement('a')) { // 不是IE浏览器
      let url = window.URL.createObjectURL(blob) // 创建一个特殊的Blob或File对象的引用,为其生成本地URL
      let link = document.createElement('a')
      link.style.display = 'none'
      link.href = url
      link.setAttribute('download', defaultBlobParams.fileName)
      document.body.appendChild(link)
      link.click()
      document.body.removeChild(link) // 下载完成移除元素
      window.URL.revokeObjectURL(url) // 释放掉blob对象
    } else { // IE 10+
      window.navigator.msSaveBlob(blob, defaultBlobParams.fileName)
    }
  })
}

